L1-056 猜数字
题目 L1-056 猜数字
思路分析
代码实现
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
using ll = long long;
using ull = unsigned long long;
using PII = pair<int,int>;
using Pll = pair<ll,ll>;
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
const int inf = 0x3f3f3f3f;
struct People{
string name;
int gress;
bool operator<(const People& rhs) const {
return gress<rhs.gress;
}
};
vector<People> p;
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n;cin>>n;
ll sum=0;
for(int i=0;i<n;i++){
string curn;int curg;cin>>curn>>curg;
sum+=curg;
p.push_back({curn,curg});
}
sort(p.begin(),p.end());
double aver=sum*1.0/n;
int finN=aver/2;
//可以用二分找 但是只有1e4
People last;
for(auto c:p){
// cout<<c.name<<" "<<c.gress<<endl;
if(c.gress>=finN){
if(c.gress>last.gress) cout<<finN<<" "<<c.name<<endl;
else cout<<finN<<" "<<last.name<<endl;
break;
}
last=c;
}
return 0;
}
同类题型
视频讲解
⬅️ L1-055 谁是赢家 🏠 00-天梯赛 ➡️ L1-057 PTA使我精神焕发
💬 评论